Device(Python)

scripting Python 包提供了 Device 命名空间,以只读属性形式暴露宿主设备的信息 —— 型号、系统版本、屏幕、语言、电池、方向等。每次属性访问都会触发一次 RPC 调用读取当前值;如果在紧凑循环里多次读同一属性,自行缓存结果。

import scripting; Device = scripting.Device

print(Device.model, Device.systemName, Device.systemVersion)

属性

硬件标识

属性类型说明
Device.modelstr例如 "iPhone""iPad"
Device.localizedModelstr本地化的 model
Device.systemNamestr例如 "iOS""iPadOS"
Device.systemVersionstr例如 "17.0"
Device.isiPhonebool当前设备是 iPhone。
Device.isiPadbool当前设备是 iPad。
Device.isiOSAppOnMacbool当前以"iOS app on Mac" 形态运行。

屏幕

属性类型说明
Device.screendict{"width": float, "height": float, "scale": float}
Device.colorSchemestr"light""dark"

电池与传感器

属性类型说明
Device.batteryStatestr"full" / "charging" / "unplugged" / "unknown"
Device.batteryLevelfloat0.0-1.0,无法监测时为 -1.0
Device.proximityStatebool近距感应器贴近用户。

方向

属性类型说明
Device.orientationstr"portrait" / "portraitUpsideDown" / "landscapeLeft" / "landscapeRight" / "faceUp" / "faceDown" / "unknown"
Device.isLandscapebool横屏方向。
Device.isPortraitbool竖屏方向。
Device.isFlatbool设备水平放置。

语言

属性类型说明
Device.systemLocalestr当前 locale 标识,如 "en_US"
Device.preferredLanguageslist[str]用户语言偏好列表,如 ["en-US", "zh-Hans-CN"]
Device.systemLanguageTagstrpreferredLanguages 元素同形态。
Device.systemLanguageCodestr例如 "en"
Device.systemCountryCodestr例如 "US"
Device.systemScriptCodestr例如 "Hans"(没有显式 script 的语言下为空)。

示例

判断 iPad / 横屏布局

import scripting; Device = scripting.Device

if Device.isiPad and Device.isLandscape:
    print("使用宽屏布局")
else:
    print("使用窄屏布局")

电池状态

import scripting; Device = scripting.Device

state = Device.batteryState
level = Device.batteryLevel
print(f"电量: {int(level * 100)}% ({state})")

按语言切换问候语

import scripting; Device = scripting.Device

primary = (Device.preferredLanguages or ["en"])[0]
greeting = "你好" if primary.startswith("zh") else "Hello"
print(greeting)